perm filename PROB6.PUB[LSP,JRA]6 blob
sn#174021 filedate 1975-08-21 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002
C00007 ENDMK
C⊗;
.NEXT PAGE;
.SS(The great mothers,,P39:)
The following problems are written (intentionally) with a great deal
of the represnetation build into them. We use %3car%* and %3cdr%* on
lists, for example. They are truly ugly but should be done anyway.
.BEGIN CENTERIT;TABIT3(10,25,36);
.GROUP;
←%2I. The Great Mother of All Functions!!! (⊗→%3tgmoaf%*↔←)
%3
\tgmoaf[x] <= \[atom[x] →\[eq[x ;T] → %et%*;
\\\ eq[x;NIL] → %ef%*;
\\\ %et%* → TRYAGAINNEXTWEEK];
\\ eq[car[x];QUOTE] → cadr[x];
\\ eq[car[x];CAR] → car[tgmoaf[cadr[x]]];
\\ eq[car[x];CDR] → cdr[tgmoaf[cadr[x]]];
\\ eq[car[x];CONS] → cons[tgmoaf[cadr[x]];tgmoaf[caddr[x]]];
\\ eq[car[x];ATOM] → atom[tgmoaf[cadr[x]]];
\\ eq[car[x];EQ] → eq[tgmoaf[cadr[x]];tgmoaf[caddr[x]]];
\\ %et%* → TRYAGAINNEXTWEEK]
%1
.APART
.GROUP
Evaluate the following:
%21.%3 tgmoaf[T]
%22.%3 tgmoaf[A]
%23.%3 tgmoaf[(CAR(QUOTE(A . B)))]
%24.%3 tgmoaf[(CDR (QUOTE (A B)))]
%25.%3 tgmoaf[(EQ (CAR (QUOTE (A . B)))(QUOTE A))]
%26.%3 tgmoaf[(EQ (CAR (QUOTE (A . B))) A)]
%27.%3 tgmoaf[(ATOM (CAR (QUOTE (A B))))]
.APART
.GROUP
←%2II. The Great Mother of All Functions Revisited!!!(⊗→%3tgmoafr%*↔←)
%3
\tgmoafr[x] <= \[atom[x] →\[eq[x;T] → %et%*;
\\\ eq[x;NIL] → %ef%*;
\\\ %et%* → TRYAGAINNEXTWEEK];
\\ eq[car[x];QUOTE] → cadr[x];
\\ eq[car[x];CAR] → car[tgmoafr[cadr[x]]];
\\ eq[car[x];CDR] → cdr[tgmoafr[cadr[x]]];
\\ eq[car[x];CONS] → cons[tgmoafr[cadr[x]];tgmoafr[caddr[x]]];
\\ eq[car[x];ATOM] → atom[tgmoafr[cadr[x]]];
\\ eq[car[x];EQ] → eq[tgmoafr[cadr[x]];tgmoafr[caddr[x]]];
\\ eq[car[x];COND] → evcond[cdr[x]];
\\ %et%* → TRYAGAINNEXTWEEK]
.APART
.GROUP
\evcond[x] <=\[tgmoafr[caar[x]] → tgmoafr[cadar[x]];
\\ %et%* → evcond[cdr[x]] ]
.APART
.GROUP
%1
Evaluate the following:
%21.%3 tgmoafr[T]
%22.%3 tgmoafr[(CDR (QUOTE (A B)))]
%23.%3 tgmoafr[(EQ (CAR (QUOTE (A . B))) (QUOTE A))]
%24.%3 tgmoafr[(COND((EQ (CAR (QUOTE (A . B)))(QUOTE A))(QUOTE FOO)))]
%25.%3 tgmoafr[(COND((ATOM (QUOTE (A)))(QUOTE FOO))(T(QUOTE BAZ)))]
.APART
←Coming soon: %2Son of Great Mother !!%*
.END